==C2/0D9F Always use max HP for HP based damage==
;Available space: C2/0D9F - C2/0DCA
:Calculate HP based damage
 C2/0D9F C2 20          REP #$20        16-bit A
 C2/0DA1 B9 1C 3C       LDA $3C1C,Y     max HP
 C2/0DA4 20 CB 0D       JSR $0DCB       A = (spell power * A / 16)
 C2/0DA7 85 F0          STA $F0         save damage
:Check damage to cap flag
 C2/0DA9 E2 20          SEP #$20        8-bit A
 C2/0DAB A9 04          LDA #$04        
 C2/0DAD 2C A7 11       BIT $11A7       check cap damage flag
 C2/0DB0 F0 0E          BEQ $0DC0       don't cap damage if unset
:To cap damage                        
 C2/0DB2 C2 20          REP #$20        16-bit A
 C2/0DB4 A5 F0          LDA $F0         damage
 C2/0DB6 C9 E8 03       CMP #$03E8      1000 damage
 C2/0DB9 90 05          BCC $0DC0       don't cap if below 1000
 C2/0DBB A9 E7 03       LDA #$03E7      999 damage
 C2/0DBE 85 F0          STA $F0         set max allowed damage
:Restore PYX and exit                        
 C2/0DC0 28             PLP
 C2/0DC1 7A             PLY
 C2/0DC2 FA             PLX
 C2/0DC3 60             RTS

==C2/501F set poison, regen, seizure or phantasmal hit==
;Available space: C2/501F - C2/5051
:Clean-up attack data
 C2/501F 20 8A 29       JSR $298A       clean-up attack data
:set command
 C2/5022 A9 12          LDA #$12        mimic command
 C2/5024 85 B5          STA $B5         save command
:set attack flags
 C2/5026 C2 20          REP #$20
 C2/5028 A9 00 69       LDA #$6900
 C2/502B 8D A1 11       STA $11A1       no magic proprieties, magical, reverse on undead, ignore defense, don't split dmg
 C2/502E A9 02 A0       LDA #$A002
 C2/5031 8D A3 11       STA $11A3       ignore reflect, can't dodge, use hp fraction
:set attack data
 C2/5034 A9 00 04       LDA #$0400
 C2/5037 8D A5 11       STA $11A5       spell cost and spell power
 C2/503A A9 01 01       LDA #$0101      
 C2/503D 8D AE 11       STA $11AE       vigor/magic and level                
:special flags
 C2/5040 E2 20          SEP #$20
 C2/5042 A9 80          LDA #$80
 C2/5044 14 B3          TRB $B3         set ignore clear
 C2/5046 A9 04          LDA #$04        
 C2/5048 8D A7 11       STA $11A7       set damage cap
:adjust data based on type: regen, poison or seizure/phantasm
 C2/504B 20 52 50       JSR $5052       adjust data
:execute hit 
 C2/504E BB             TYX
 C2/504F 4C 67 31       JMP $3167       execute regen,poison,seizure or phantasm hit

==C2/504D adjust poison, regen, seizure or phantasmal hit==
;Available space: C2/5052 - C2/5071
:select type of attack
 C2/5052 A5 B6          LDA $B6         #$02=regen, #$04=poison, #$40=seizure or phantasm
 C2/5054 89 02          BIT #$02
 C2/5056 D0 05          BNE $505D       regen hit
 C2/5058 89 40          BIT #$40
 C2/505A D0 08          BNE $5064       seizure hit
 C2/505C 60             RTS             don't adjust if poison
:regen hit
 C2/505D A9 01          LDA #$01        heal flag
 C2/505F 0C A4 11       TSB $11A4       setup flag
 C2/5062 80 0A          BRA $506E
:seizure hit
 C2/5064 A9 80          LDA #$80        concern MP flag
 C2/5066 0C A3 11       TSB $11A3       setup flag
 C2/5069 80 00          BRA $506B
:ajust damage value 
 C2/506B 4E A6 11       LSR $11A6       spell power = spell power / 2
 C2/506E 4E A6 11       LSR $11A6       spell power = spell power / 2
 C2/5071 60             RTS

